package com.ai.dao.edu.cms.section;

import java.util.List;
import java.util.Map;

import com.ai.model.edu.cms.section.SectionInfo;
import com.ai.model.edu.cms.section.dto.SectionInfoDTO;
import com.ai.model.edu.cms.section.vo.SectionInfoVO;

public interface SectionInfoMapper {

    /**
     * Description	： 根据DTO查询栏目分页信息<br>
     * 
     * wumc
     * @param sectionInfoDTO
     * @return
     * @since
     *
     */
    public List<SectionInfoVO> findSectionInfoPageByDTO(SectionInfoDTO sectionInfoDTO);
    
    /**
     * Description	： 根据DTO统计栏目数量<br>
     * 
     * wumc
     * @param sectionInfoDTO
     * @return
     * @since
     *
     */
    public int countSectionInfoPageByDTO(SectionInfoDTO sectionInfoDTO);

    /**
     * Description	： 根据父栏目ID批量查询所有子栏目（主题）信息集合<br>
     * 
     * wumc
     * @param params
     * @return
     * @since
     *
     */
    public List<SectionInfoVO> findSubSectionInfoByParentIdList(Map<String, Object> params);

    /**
     * Description	： 查询所有一级栏目-频道列表，作为选择频道用<br>
     * 
     * wumc
     * @return
     * @since
     *
     */
    public List<SectionInfoVO> findAllChannelList();

    /**
     * Description  ： 根据所属栏目查找最大的序列值<br>
     * 
     * wumc
     * @param parentSectionId
     * @return
     * @since
     *
     */
    public Integer findMaxSortCountByParentSectionId(Map<String, Object> params);

    /**
     * Description  ： 新增栏目<br>
     * 
     * wumc
     * @param sectionInfo
     * @return
     * @since
     *
     */
    public int addSectionInfo(SectionInfoDTO sectionInfoDTO);

    /**
     * Description  ： 更新栏目<br>
     * 
     * wumc
     * @param sectionInfo
     * @return
     * @since
     *
     */
    public int updateSectionInfo(SectionInfoDTO sectionInfoDTO);

    /**
     * Description  ： 根据ID查询栏目信息<br>
     * 
     * wumc
     * @param params
     * @return
     * @since
     *
     */
    public SectionInfoVO findSectionInfoById(Map<String, Object> params);

    /**
     * Description  ： 根据栏目ID，更新栏目排序序号<br>
     * 
     * wumc
     * @param sectionInfo
     * @since
     *
     */
    public void updateSectionSortById(SectionInfo sectionInfo);

    /**
     * Description  ： 启用停用栏目<br>
     * 
     * wumc
     * @param updateSectionIdList
     * @since
     *
     */
    public void enableSectionByIdList(Map<String, Object> params);

    /**
     * Description	： 根据ID查询栏目信息集合<br>
     * 
     * wumc
     * @param sectionIdList
     * @return
     * @since
     *
     */
    public List<SectionInfoVO> querySectionInfoListByIds(List<Long> sectionIdList);

	public List<SectionInfoVO> sectionTreeByParentId(Long parentId);

	public List<SectionInfoVO> validSectionNamesByDto(
			SectionInfoDTO sectionInfoDTO);
}
